接下來討論IT工具中的 Project Management tool 與 Issue tracking (Bug tracking) system. 這兩個放在一起討論是因為我要介紹所有使用到的工具中最重量級的角色 Redmine. Redmine 本身就兼具Project Mangement 與 Issue tracking 的功能, 再加上許多 Plugin 的加持, 讓它在軟體開發流程中足以扮演了中心者的角色.
接下來討論IT工具中的 Project Management tool 與 Issue tracking (Bug tracking) system. 這兩個放在一起討論是因為我要介紹所有使用到的工具中最重量級的角色 Redmine. Redmine 本身就兼具Project Mangement 與 Issue tracking 的功能, 再加上許多 Plugin 的加持, 讓它在軟體開發流程中足以扮演了中心者的角色.
一般在軟體團隊最先會引進的是SCM與Issue tracking system. 這兩個是比較基本的工具. 而在專案管理部分, 一般可能會使用Microsoft Project 或是直接用文件來管理. 這樣的方式不是不好, 但我認為有幾個缺點, 1. 費時費人力 2.系統間交集少 3.流程管理靠的是人,容易出錯 4.能夠獲得的額外專案管理的資訊較少.
在經過一番研究, 試過許多套專案管理系統後, 推薦大家使用的是Redmine. 在未使用Redmine前, 系統與人的關係大概如下: 系統間是分開的, 由人來控制系統與流程.
導入Redmine之後之後, 關係圖如下:由系統來控制流程, 使用者是流程中的一個節點.
接著大概簡介一下Redmine, 它是一套Open Source 的系統 , 架構在Ruby on Rail上.
官方網站為http://www.redmine.org/, 官方網站本身就是用Redmine架設的, 所以也是最好的一個Reference Site. 所有相關的資訊在官方網站上都有.
安裝的方式在
http://www.redmine.org/projects/redmine/wiki/RedmineInstall 有詳細說明.
User Guide內除了安裝方式外, 還包含了管理者手冊, 一般使用者手冊, 開發者手冊.
版本藍圖可以在
http://www.redmine.org/projects/redmine/roadmap 查到.
如果有任何使用上的問題也可到本身的論壇http://www.redmine.org/projects/redmine/boards
去詢問. 如果有任何建議的功能, 也可以提出建議請開發團隊在未來加入.
它的基本功能大概列舉如下:
(i)Project task management : 專案的工作項目管理
(ii)Issue tracking system : 專案功能臭蟲的進度追蹤管理
(iii)Project status tracking : 專案狀態管理
(iv)Human resource management : 專案人力資源管理
(v)Project information sharing : 專案資訊的共享平台
(vi)Source code control integrated : 整合SCM系統
(vii)Code review: 程式碼檢討 (透過Plugin 達成)
(viii)Project documents management: 專案文件管理
它的一些特色列舉如下:
(a)Multiple projects support: 支援多個專案
(b)Flexible role based access control: 可以自己定義角色與權限
(c)Flexible issue tracking system: 彈性化的Issue 追蹤管理
(d)Gantt chart and calendar: 甘特圖和行事曆的支援
(e)News, documents & files management: 新聞, 檔案與文件的管理
(f)Feeds & email notifications: 自動通知機制
(g)Per project wiki Per project forums: 支援Wiki, 論壇
(h)Time tracking: 時程追蹤管理
(i)Custom fields for issues, time-entries, projects and users: 客制化欄位
(j)SCM integration (SVN, CVS, Git, Mercurial, Bazaar and Darcs): SCM整合
(k)Issue creation via email: 透過Email新增Issue
(l)Multiple LDAP authentication support: 支援各式LDAP
(m)User self-registration support: 支援使用者自己註冊帳號
(n)Multilanguage support: 多國語言支援
(o)Multiple databases support - (SQLite、MySQL、PostgreSQL): 支援多種資料庫
(p)Code review: 程是碼檢討
使用Redmine 的另個好處是可以幫助ISO, PMP, CMMI的推動.因為它可以涵蓋許多的範圍:
(1)ISO: 你可將所有ISO定義的文件, 使用Redmine來管理, 另外他所定義的流程 (通知, 審核, 備份) 在Redmine上都可達成.
(2)PMP: PMBOK9 所定義的九大Knowledge area, Redmine mine 可以涵蓋其中六項: Integration Management , Scope Management , Time Management, Quality Management, Human Resource Management, Communications Management. 並部份涵蓋到其中兩項: Cost Management, Risk Management.
(3)CMMI: 在CMMI Level1~5 所定義的Process area 中, 他可以涵蓋到其中十項: MA, CM, PP, PMC, PPQA, REQM, IPM, DAR, OPF, OPD. 並部分涵蓋到三項: RSKM, OPP, QPM.
使用Redmine有幾點要注意:
1.要設計好你的組織與專案人員架構,
2.根據你的架構, 使用者, 角色, 設定好相關權限
3. 設定好各式Tracker (Bug, Feature, Support, Code revew等) 也就是你要追蹤管理的標的, 以及他的狀態(Status)與流程(WorkFlow)
4.做好教育訓練, 讓使用者充分了解你所定義的流程與角色
5.督促使用者詳實紀錄各自的工作狀況與結果.
6.定時檢討流程與改善
透過它你可以把整個軟體流成串接起來, 從專案開始:
專案人員的管理->專案範圍的定義->專案時程規劃,WBS展開->工作項目追蹤->整合SCM->臭蟲追縱管理->專案資訊分享->專案文件版本與權限管理->程式碼檢討->專案的Wiki製作->專案人員討論區->專案報表(甘特圖, 行事曆, 各種資料的統計報表)->Image的發行版本管理.
另外透過PAM模組, 還可以跟SCM, 檔案系統(FTP), KM系統, 教育訓練系統做帳號的整合. 做到全方位的軟體專案管理. 有軟體專案管理困擾的團隊, 試著架構一套Redmine起來吧, 絕對能讓你的管理更加輕鬆寫意!
想請教一下,
SVN與SCM這兩個是有相關的嗎?
我找尋英文網站,但每個安裝svn的文章都不太相同,
我該如何正確的安裝svn。
My Environment:
Server version ubuntu 12.10
Redmine version 2.1.2.stable
Ruby version 1.9.3 (x86_64-linux)
Rails version 3.2.8
Environment production
Database adapter Mysql2
Redmine plugins:
no plugin installed
SCM 是 source control management, 涵蓋所有的source code管理軟體, SVN 是其中一種. SVN 很好安裝, 幾乎每個版本的 linux 都有 package 可以直接安裝.